home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / comm / mail / YAM23src.lha / Source / YAM.h.in < prev    next >
Text File  |  2001-05-14  |  49KB  |  1,466 lines

  1. /***************************************************************************
  2.  
  3.  YAM - Yet Another Mailer
  4.  Copyright (C) 1995-2000 by Marcel Beck <mbeck@yam.ch>
  5.  Copyright (C) 2000-2001 by YAM Open Source Team
  6.  
  7.  This program is free software; you can redistribute it and/or modify
  8.  it under the terms of the GNU General Public License as published by
  9.  the Free Software Foundation; either version 2 of the License, or
  10.  (at your option) any later version.
  11.  
  12.  This program is distributed in the hope that it will be useful,
  13.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  GNU General Public License for more details.
  16.  
  17.  You should have received a copy of the GNU General Public License
  18.  along with this program; if not, write to the Free Software
  19.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  20.  
  21.  YAM Official Support Site :  http://www.yam.ch
  22.  YAM OpenSource project    :  http://sourceforge.net/projects/yamos/
  23.  
  24.  $Id: YAM.h.in,v 1.31.2.1 2001/05/14 19:58:53 laursen Exp $
  25.  
  26. ***************************************************************************/
  27.  
  28. #include "headers.h"
  29. #include "YAM_loc.h"
  30.  
  31. /// Defines
  32. #if defined __PPC__
  33.     #define CPU " [PPC]"
  34. #elif defined _M68060
  35.     #define CPU " [060]"
  36. #elif defined _M68040
  37.     #define CPU " [040]"
  38. #elif defined _M68020
  39.     #define CPU " [020]"
  40. #else
  41.     #define CPU ""
  42. #endif
  43.  
  44. /* extern define YAMVER */
  45. #define __YAM_VERSION YAMVER CPU
  46.  
  47. #define ANYBOX NULL
  48.  
  49. #define True  ((BOOL)TRUE)
  50. #define False ((BOOL)FALSE)
  51.  
  52. #define MAXP3 16
  53. #define MAXRU 100
  54. #define MAXMV 100
  55. #define MAXRX 21
  56.  
  57. #define FOCOLNUM 5
  58. #define MACOLNUM 7
  59. #define ABCOLNUM 9
  60.  
  61. #define MAXICONS  4
  62. #define MAXIMAGES 17
  63. #define MAXASL 8
  64. #define MAXERR 50
  65. #define MAXUSERS 16
  66. #define MAXCTYPE 25
  67. #define MAXCPAGES 15
  68. #define MAXEA 4
  69. #define MAXRE 4
  70. #define MAXWR 2 /* BEWARE: Don't change this value - it's hardcoded many places! */
  71.  
  72. #define SIZE_USERID     60
  73. #define SIZE_PASSWORD   80
  74. #define SIZE_ADDRESS   100
  75. #define SIZE_HOST       80
  76. #define SIZE_REALNAME   40
  77. #define SIZE_SUBJECT   200
  78. #define SIZE_MSGID      80
  79. #define SIZE_MFILE      12
  80. #define SIZE_COMMAND   120
  81. #define SIZE_CTYPE      40
  82. #define SIZE_NAME       20
  83. #define SIZE_PATH      120
  84. #define SIZE_FILE       32
  85. #define SIZE_SMALL      16
  86. #define SIZE_DEFAULT    80
  87. #define SIZE_LARGE     512
  88. #define SIZE_LINE     1001
  89. #define SIZE_RCPTS    4096
  90. #define SIZE_INTRO     200
  91. #define SIZE_PATTERN   160
  92. #define SIZE_PATHFILE  SIZE_PATH+SIZE_FILE
  93. #define SIZE_URL       SIZE_HOST+SIZE_PATHFILE
  94.  
  95. #define AddrName(abentry) ((abentry).RealName[0]?(abentry).RealName:(abentry).Address)
  96. #define FolderName(fo)    ((fo) ? (fo)->Name : "?")
  97. #define BusyEnd           Busy("", NULL, 0, 0)
  98. #define OUTGOING(type)    (type == FT_OUTGOING || type == FT_SENT || type == FT_CUSTOMSENT)
  99. #define Virtual(mail)     (((mail)->Flags&MFLAG_NOFOLDER) == MFLAG_NOFOLDER)
  100.  
  101. #define DBG  printf("File %s, Func %s, Line %d\n",__FILE__,__FUNC__,__LINE__);
  102. #define DBGP DBG Delay(100);
  103. #define clear(p,l) memset((p), 0, (l));
  104.  
  105. #ifdef __MORPHOS__
  106.  
  107.     #define MakeHook(hookname, funcname) \
  108.         extern struct EmulLibEntry Gate_##funcname; \
  109.         struct Hook hookname = { {NULL, NULL}, (void*)&Gate_##funcname, NULL, NULL }
  110.     #define InitHook(hook, funcname, data) ((hook)->h_Entry = (void*)&Gate_##funcname, (hook)->h_Data = (APTR)(data))
  111.     #define ENTRY(func)      (void*)&Gate_##func
  112.  
  113.     #define REG(reg,arg) arg
  114.     #define ASM
  115.     #define SAVEDS
  116.     #define STACKEXT
  117.     #define __stdargs
  118.     #define __regargs
  119.     #define __near
  120.  
  121. #else /* __MORPHOS__ */
  122.  
  123. #if defined(__VBCC__) || defined(__STORM__)
  124. #define MakeHook(hookname, funcname) struct Hook hookname = { {NULL, NULL}, (void *)HookEntry, (void *)funcname, NULL }
  125. #define InitHook(hook, funcname, data) ((hook)->h_Entry = (void *)HookEntry, (hook)->h_SubEntry = (void *)funcname, (hook)->h_Data = (APTR)(data))
  126. #else
  127. #define MakeHook(hookname, funcname) struct Hook hookname = { {NULL, NULL}, (void *)funcname, NULL, NULL }
  128. #define InitHook(hook, funcname, data) ((hook)->h_Entry = (void *)funcname, (hook)->h_Data = (APTR)(data))
  129. #endif
  130. #define ENTRY(func)      func
  131.  
  132. #endif /* __MORPHOS__ */
  133.  
  134. #define LOCAL static
  135. #define nnsetstring(obj,s) nnset((obj),MUIA_String_Contents,(s))
  136.  
  137. #define MUIA_Bodychunk_File          0x80002501
  138. #define MUIA_Bodychunk_UseOld        0x80002502
  139. #define MUIA_Slider_Weights          0x80002511
  140. #define MUIM_MainWindow_CloseWindow  0x80002521
  141. #define MUIA_Dtpic_Name              0x80423d72
  142. #define MUIM_GoActive                0x8042491a
  143. #define MUIM_GoInactive              0x80422c0c
  144.  
  145. #define MUIX_PC "\0335"
  146.  
  147. #define PGPLOGFILE "T:PGP.log"
  148. #define NOERRORS   16
  149. #define KEEPLOG    32
  150. #define CRYPTBYTE 164
  151.  
  152. #define MSG_Space ((APTR)1)
  153. #define OUT_NIL ((BPTR)1)
  154. #define POPCMD_WAITEOL 1
  155. #define POPCMD_NOERROR 2
  156. #define MFLAG_MULTIRCPT   1
  157. #define MFLAG_MULTIPART   2
  158. #define MFLAG_REPORT      4
  159. #define MFLAG_CRYPT       8
  160. #define MFLAG_SIGNED     16
  161. #define MFLAG_SENDERINFO 32
  162. #define MFLAG_SENDMDN    64
  163. #define MFLAG_NOFOLDER  128
  164. #define MDN_TYPEMASK  0x0F
  165. #define MDN_AUTOACT   0x10
  166. #define MDN_AUTOSEND  0x20
  167. #define PGPE_MIME     1
  168. #define PGPE_OLD      2
  169. #define PGPS_MIME     1
  170. #define PGPS_OLD      2
  171. #define PGPS_BADSIG   4
  172. #define PGPS_ADDRESS  8
  173. #define PGPS_CHECKED 16
  174. #define ASM_ALIAS    0
  175. #define ASM_REALNAME 1
  176. #define ASM_ADDRESS  2
  177. #define ASM_TYPEMASK 7
  178. #define ASM_USER     8
  179. #define ASM_LIST     16
  180. #define ASM_GROUP    32
  181. #define ASM_COMPLETE 64
  182. #define HIDE_INFO    1
  183. #define HIDE_XY      2
  184. #define HIDE_TBAR    4
  185. #define NOTI_REQ     1
  186. #define NOTI_SOUND   2
  187. #define NOTI_CMD     4
  188. #define ATTREQ_DISP  0
  189. #define ATTREQ_SAVE  1
  190. #define ATTREQ_PRINT 2
  191. #define ATTREQ_MULTI 32
  192. #define FOFL_MODIFY  1
  193. #define FOFL_FREEXS  2
  194. #define NEWF_QUIET 1
  195. #define NEWF_REP_NOQUOTE  2
  196. #define NEWF_REP_PRIVATE  4
  197. #define NEWF_REP_MLIST    8
  198. #define NEWF_FWD_NOATTACH 16
  199.  
  200. #define PRINTMETHOD_DUMPRAW    (0)
  201. #define PRINTMETHOD_LATEX      (1)
  202. #define PRINTMETHOD_POSTSCRIPT (2)    // not yet implemented
  203.  
  204. ///
  205. /// WBPath.o Interface
  206. #define CloneWorkbenchPath(sm) cloneWorkbenchPath(SysBase, DOSBase, sm)
  207. #define FreeWorkbenchPath(path) freeWorkbenchPath(SysBase, DOSBase, path)
  208.  
  209. BPTR STDARGS cloneWorkbenchPath(struct ExecBase *, struct DosLibrary *, struct WBStartup *);
  210. void STDARGS freeWorkbenchPath(struct ExecBase *, struct DosLibrary *, BPTR);
  211.  
  212. ///
  213. /// Configuration sub-structures
  214. struct POP3
  215. {
  216.    char  Account[SIZE_USERID+SIZE_HOST];
  217.    char  Server[SIZE_HOST];
  218.    char  User[SIZE_USERID];
  219.    char  Password[SIZE_USERID];
  220.    BOOL  Enabled;
  221.    BOOL  UseAPOP;
  222.    BOOL  DeleteOnServer;
  223. };
  224.  
  225. struct MimeView
  226. {
  227.    char  ContentType[SIZE_CTYPE];
  228.    char  Command[SIZE_COMMAND];
  229.    char  Extension[SIZE_NAME];
  230. };
  231.  
  232. struct Folder
  233. {
  234.    char  Name[SIZE_NAME];
  235.    char  Path[SIZE_PATH];
  236.    char  Password[SIZE_USERID];   
  237.    char  MLPattern[SIZE_PATTERN];
  238.    char  MLAddress[SIZE_ADDRESS];
  239.    char  MLFromAddress[SIZE_ADDRESS];
  240.    char  MLReplyToAddress[SIZE_ADDRESS];
  241.    int     MLSignature;
  242.    int   Type, XPKType;
  243.    int   Total, New, Unread;
  244.    int   Size;
  245.    int   Sort[2];
  246.    int   MaxAge;
  247.    int   LastActive;
  248.    int   LoadedMode;
  249.    int   SortIndex;
  250.    ULONG Flags;
  251.    struct Mail *Messages;
  252. };
  253.  
  254. struct Rule
  255. {
  256.    char  Name[SIZE_NAME];
  257.    BOOL  Remote;
  258.    BOOL  ApplyToNew;
  259.    BOOL  ApplyOnReq;
  260.    BOOL  ApplyToSent;
  261.    int   Combine;
  262.    int   Field[2];
  263.    int   SubField[2];
  264.    char  CustomField[2][SIZE_DEFAULT];
  265.    int   Comparison[2];
  266.    char  Match[2][SIZE_PATTERN];
  267.    BOOL  CaseSens[2];
  268.    BOOL  Substring[2];
  269.    int   Actions;
  270.    char  BounceTo[SIZE_ADDRESS];
  271.    char  ForwardTo[SIZE_ADDRESS];
  272.    char  ReplyFile[SIZE_PATHFILE];
  273.    char  ExecuteCmd[SIZE_COMMAND];
  274.    char  PlaySound[SIZE_PATHFILE];
  275.    char  MoveTo[SIZE_NAME];
  276.    char  **PatternsFromList;
  277. };       
  278.  
  279. struct RxHook
  280. {
  281.    char  Name[SIZE_NAME];
  282.    char  Script[SIZE_PATHFILE];
  283.    BOOL  IsAmigaDOS;
  284.    BOOL  UseConsole;
  285.    BOOL  WaitTerm;
  286. };
  287.  
  288. struct TranslationTable
  289. {
  290.    char Name[SIZE_DEFAULT];
  291.    char File[SIZE_PATHFILE];
  292.    char SourceCharset[SIZE_NAME], DestCharset[SIZE_NAME];
  293.    BOOL Header;
  294.    UBYTE Table[256];
  295. };
  296.  
  297. struct Column
  298. {
  299.    char *Name;
  300.    int   Index;
  301.    int   DefWidth;
  302.    int   Width;
  303.    int   Position;
  304.    BOOL  Show;
  305. };
  306. ///
  307. /// Configuration main structure
  308. struct Config
  309. {
  310.    char  RealName[SIZE_REALNAME]; /*0*/
  311.    char  EmailAddress[SIZE_ADDRESS];
  312.    int   TimeZone;
  313.    BOOL  DaylightSaving;
  314.    char  SMTP_Server[SIZE_HOST]; /*1*/
  315.    char  SMTP_Domain[SIZE_HOST];
  316.    BOOL  Allow8bit;
  317.    BOOL  Use_SMTP_AUTH;
  318.    char  SMTP_AUTH_User[SIZE_USERID];
  319.    char  SMTP_AUTH_Pass[SIZE_USERID];
  320.    struct POP3 *P3[MAXP3];
  321.    BOOL  AvoidDuplicates; /*2*/
  322.    int   PreSelection;
  323.    int   TransferWindow;
  324.    BOOL  UpdateStatus;
  325.    int   WarnSize;
  326.    int   CheckMailDelay;
  327.    BOOL  DownloadLarge;
  328.    int   NotifyType;
  329.    char  NotifySound[SIZE_PATHFILE];
  330.    char  NotifyCommand[SIZE_COMMAND];
  331.    struct Rule *RU[MAXRU]; /*3*/
  332.    int   ShowHeader; /*4*/
  333.    char  ShortHeaders[SIZE_PATTERN];
  334.    int   ShowSenderInfo;
  335.    struct MUI_PenSpec ColoredText;
  336.    struct MUI_PenSpec Color2ndLevel;
  337.    BOOL  DisplayAllTexts;
  338.    BOOL  FixedFontEdit;
  339.    BOOL  MultipleWindows;
  340.    int   SigSepLine;
  341.    BOOL  UseTextstyles;
  342.    BOOL  WrapHeader;
  343.    char  TranslationIn[SIZE_PATHFILE];
  344.    char  ReplyTo[SIZE_ADDRESS]; /*5*/
  345.    char  Organization[SIZE_DEFAULT];
  346.    char  ExtraHeaders[SIZE_LARGE];
  347.    char  NewIntro[SIZE_INTRO];
  348.    char  Greetings[SIZE_INTRO];
  349.    char  TranslationOut[SIZE_PATHFILE];
  350.    int   EdWrapCol;
  351.    int   EdWrapMode;
  352.    char  Editor[SIZE_PATHFILE];
  353.    BOOL  LaunchAlways;
  354.    char  ReplyHello[SIZE_INTRO]; /*6*/
  355.    char  ReplyIntro[SIZE_INTRO];
  356.    char  ReplyBye[SIZE_INTRO];
  357.    char  AltReplyHello[SIZE_INTRO];
  358.    char  AltReplyIntro[SIZE_INTRO];
  359.    char  AltReplyBye[SIZE_INTRO];
  360.    char  AltReplyPattern[SIZE_PATTERN];
  361.    char  MLReplyHello[SIZE_INTRO];
  362.    char  MLReplyIntro[SIZE_INTRO];
  363.    char  MLReplyBye[SIZE_INTRO];
  364.    char  ForwardIntro[SIZE_INTRO];
  365.    char  ForwardFinish[SIZE_INTRO];
  366.    BOOL  QuoteMessage;
  367.    char  QuoteText[SIZE_SMALL];
  368.    char  AltQuoteText[SIZE_SMALL];
  369.    BOOL  QuoteEmptyLines;
  370.    BOOL  CompareAddress;
  371.    BOOL  StripSignature;
  372.    BOOL  UseSignature; /*7*/
  373.    char  TagsFile[SIZE_PATHFILE];
  374.    char  TagsSeparator[SIZE_SMALL];
  375.    int   FolderCols; /*8*/
  376.    int   MessageCols;
  377.    BOOL  FixedFontList;
  378.    BOOL  SwatchBeat;
  379.    char  PGPCmdPath[SIZE_PATH]; /*9*/
  380.    char  MyPGPID[SIZE_DEFAULT];
  381.    BOOL  EncryptToSelf;
  382.    char  ReMailer[SIZE_ADDRESS];
  383.    char  RMCommands[SIZE_INTRO];
  384.    char  LogfilePath[SIZE_PATH];
  385.    int   LogfileMode;
  386.    BOOL  SplitLogfile;
  387.    BOOL  LogAllEvents;
  388.    BOOL  GetOnStartup; /*10*/
  389.    BOOL  SendOnStartup;
  390.    BOOL  CleanupOnStartup;
  391.    BOOL  RemoveOnStartup;
  392.    BOOL  LoadAllFolders;
  393.    BOOL  UpdateNewMail;
  394.    BOOL  CheckBirthdates;
  395.    BOOL  SendOnQuit;
  396.    BOOL  CleanupOnQuit;
  397.    BOOL  RemoveOnQuit;
  398.    struct MimeView *MV[MAXMV]; /*11*/
  399.    BOOL  IdentifyBin;
  400.    char  DetachDir[SIZE_PATH];
  401.    char  AttachDir[SIZE_PATH];
  402.    char  GalleryDir[SIZE_PATH]; /*12*/
  403.    char  MyPictureURL[SIZE_URL];
  404.    BOOL  AddMyInfo;
  405.    int   AddToAddrbook;
  406.    char  NewAddrGroup[SIZE_NAME];
  407.    char  ProxyServer[SIZE_HOST];
  408.    int   AddrbookCols;
  409.    BOOL  UseCManager;
  410.    struct RxHook RX[MAXRX]; /*13*/
  411.    char  TempDir[SIZE_PATH]; /*14*/
  412.    char  PackerCommand[SIZE_COMMAND];
  413.    int   IconPositionX, IconPositionY;
  414.    BOOL  IconifyOnQuit;
  415.    BOOL  Confirm;
  416.    int   ConfirmDelete;
  417.    BOOL  RemoveAtOnce;
  418.    BOOL  SaveSent;
  419.    int   MDN_Display;
  420.    int   MDN_Process;
  421.    int   MDN_Delete;
  422.    int   MDN_Filter;
  423.    BOOL  SendMDNAtOnce;
  424.    char  XPKPack[5];
  425.    char  XPKPackEncrypt[5];
  426.    int   XPKPackEff;
  427.    int   XPKPackEncryptEff;
  428.    int   LetterPart; /*Hidden*/
  429.    int   WriteIndexes;
  430.    int   AutoSave;
  431.    char  SupportSite[SIZE_HOST];
  432.    BOOL  JumpToNewMsg;
  433.    BOOL  AskJumpUnread;
  434.    BOOL  WarnSubject;
  435.    BOOL  PrinterCheck;
  436.    int   HideGUIElements;
  437.    char  LocalCharset[SIZE_CTYPE];
  438.    BOOL  IsOnlineCheck;
  439.    char  IOCInterface[SIZE_SMALL];
  440.    BOOL  ConfirmOnQuit;
  441.     int    PrintMethod;
  442.    int   StackSize;
  443. };
  444. ///
  445. /// Miscellaneous structures
  446. struct RuleResult
  447. {
  448.    long Checked;
  449.    long Bounced, Forwarded, Replied, Executed, Moved, Deleted;
  450. };
  451.  
  452. struct DownloadResult
  453. {
  454.    BOOL Error;
  455.    long Downloaded, OnServer, DupSkipped, Deleted;
  456. };
  457.  
  458. struct Data2D
  459. {
  460.    int Allocated;
  461.    int Used;
  462.    char **Data;
  463. };
  464.  
  465. struct Person
  466. {       
  467.    char Address[SIZE_ADDRESS];
  468.    char RealName[SIZE_REALNAME];
  469. };
  470.  
  471. struct ABEntry
  472. {
  473.    char Address[SIZE_ADDRESS];
  474.    char RealName[SIZE_REALNAME];
  475.    char Comment[SIZE_DEFAULT];
  476.    char Alias[SIZE_NAME];
  477.    char Phone[SIZE_DEFAULT];
  478.    char Street[SIZE_DEFAULT];
  479.    char City[SIZE_DEFAULT];
  480.    char Country[SIZE_DEFAULT];
  481.    char Homepage[SIZE_URL];
  482.    long BirthDay;
  483.    char PGPId[SIZE_ADDRESS];
  484.    char Photo[SIZE_PATHFILE];
  485.    char *Members;
  486.    int  Type;
  487.    int  DefSecurity;
  488. };
  489.  
  490. struct MailInfo
  491. {
  492.    int   Pos;
  493.    char *FName;
  494.    BOOL  Display;
  495. };
  496.  
  497. struct Mail
  498. {
  499.    struct Mail *Next;
  500.    struct Folder *Folder;
  501.    struct Person From;
  502.    struct Person To;
  503.    struct Person ReplyTo;
  504.    int    Flags;
  505.    char   Subject[SIZE_SUBJECT];
  506.    char   MailFile[SIZE_MFILE];
  507.    struct DateStamp Date;
  508.    char   Status;
  509.    char   Importance;
  510.    long   cMsgID, cIRTMsgID;
  511.    char  *UIDL;
  512.    int    Position;
  513.    int    Index;
  514.    long   Size;
  515.    struct Mail *Reference;
  516. };
  517.  
  518. struct ExtendedMail
  519. {
  520.    struct Mail   Mail;
  521.    struct Person *STo;
  522.    struct Person *CC;
  523.    struct Person *BCC;
  524.    int NoSTo, NoCC, NoBCC;
  525.    struct Person ReceiptTo;
  526.    struct Person OriginalRcpt;
  527.    int    ReceiptType;
  528.    char   MsgID[SIZE_MSGID];
  529.    char   IRTMsgID[SIZE_MSGID];
  530.    BOOL   DelSend, RetRcpt;
  531.    int    Signature;
  532.    int    Security;
  533.    char  *Headers;
  534.    char  *SenderInfo;
  535. };
  536.         
  537. struct ComprMail
  538. {
  539.    int    Flags;
  540.    char   MailFile[SIZE_MFILE];
  541.    struct DateStamp Date;
  542.    char   Status;
  543.    char   Importance;
  544.    long   cMsgID, cIRTMsgID;
  545.    long   Size;
  546.    int    MoreBytes;
  547. };
  548.  
  549. struct Attach
  550. {
  551.    char FilePath[SIZE_PATHFILE];
  552.    char Name[SIZE_FILE];
  553.    int  Size;
  554.    BOOL IsMIME;
  555.    char ContentType[SIZE_CTYPE];
  556.    char Description[SIZE_DEFAULT];
  557.    BOOL IsTemp;
  558. };
  559.  
  560. struct WritePart
  561. {
  562.    struct WritePart *Next;
  563.    char *ContentType, *Filename, *Description, *Name;
  564.    int   EncType;
  565.    BOOL  IsTemp;
  566.    struct TranslationTable *TTable;
  567. };
  568.  
  569. struct TempFile
  570. {
  571.    char Filename[SIZE_PATHFILE];
  572.    FILE *FP;
  573. };
  574.  
  575. struct Compose
  576. {
  577.    FILE *FH;
  578.    char *MailTo;
  579.    char *MailCC;
  580.    char *MailBCC;
  581.    char *From;
  582.    char *ReplyTo;
  583.    char *RealName;
  584.    char *Subject;
  585.    char *ExtHeader;
  586.    char *IRTMsgID;
  587.    int  Mode;
  588.    int  Importance;
  589.    int  Signature;
  590.    int  Security, OldSecurity;
  591.    int  Receipt;
  592.    int  ReportType;
  593.    BOOL DelSend;
  594.    BOOL UserInfo;
  595.    struct WritePart *FirstPart;
  596.    struct Mail *OrigMail;
  597. };
  598.  
  599. struct Part
  600. {
  601.    struct Part *Prev;
  602.    struct Part *Next;
  603.    struct Part *NextSelected;
  604.    int  Win;
  605.    char Name[SIZE_FILE];
  606.    char Description[SIZE_DEFAULT];
  607.    char *ContentType;
  608.    char Filename[SIZE_PATHFILE];
  609.    char Boundary[SIZE_DEFAULT];
  610.    char *JunkParameter;
  611.    char *CParName, *CParBndr, *CParProt, *CParDesc, *CParRType, *CParCSet;
  612.    int  EncodingCode;
  613.    int  MaxHeaderLen;
  614.    int  Size;
  615.    int  Nr;
  616.    BOOL HasHeaders;
  617.    BOOL Printable;
  618.    BOOL Decoded;
  619. };
  620.  
  621. struct TransStat
  622. {
  623.    int Msgs_Tot, Msgs_Done;
  624.    long Size_Tot, Size_Done, Size_Curr, Delay;
  625.    long Clock_Start, Clock_Last;
  626. };
  627.  
  628. struct Dict
  629. {
  630.    char Alias[SIZE_NAME];
  631.    char *Text;
  632. };
  633.  
  634. struct Users
  635. {
  636.    int Num, CurrentID;
  637.    struct User
  638.    {
  639.       char Name[SIZE_NAME];
  640.       char Password[SIZE_USERID];
  641.       char MailDir[SIZE_PATH];
  642.       BOOL Limited, UseAddr, UseDict, Clone, IsNew;
  643.       int ID;
  644.    } User[MAXUSERS];
  645. };
  646.  
  647. struct Search
  648. {
  649.    int  Mode, PersMode, Compare, Status, Fast;
  650.    BOOL CaseSens, SubString;
  651.    char Match[SIZE_PATTERN+4], PatBuf[SIZE_PATTERN], *Pattern;
  652.    char Field[SIZE_DEFAULT];
  653.    struct DateTime DT;
  654.    struct Data2D List;
  655.    struct Rule *Rule;
  656.    long Size;
  657. };
  658.  
  659. struct BodyChunkData
  660. {
  661.    ULONG *Colors;
  662.    UBYTE *Body;
  663.    int Width, Height, Depth;
  664.    int Compression, Masking;
  665.    char File[SIZE_NAME];
  666. };
  667.  
  668. struct ExpandTextData
  669. {
  670.    char *OS_Name;
  671.    char *OS_Address;
  672.    char *OM_Subject;
  673.    struct DateStamp *OM_Date;
  674.    char *OM_MessageID;
  675.    char *R_Name;
  676.    char *R_Address;
  677.    char *HeaderFile;
  678. };
  679.  
  680. struct PageList
  681. {
  682.    int Offset;
  683.    APTR PageLabel;
  684. };
  685.  
  686. struct FIndex
  687. {
  688.    ULONG ID;
  689.    int   Total, New, Unread;
  690.    int   Size;
  691.    long  reserved[2];
  692. };
  693. ///
  694. /// Module Classes
  695. struct SearchGroup
  696. {
  697.    APTR PG_SRCHOPT, CY_MODE, ST_FIELD, CY_COMP[5], ST_MATCH[5], BT_FILE[5], BT_EDIT[5];
  698.    APTR RA_ADRMODE, CY_STATUS, CH_CASESENS[5], CH_SUBSTR[5];
  699. };
  700.  
  701. struct MA_ClassData  /* main window */
  702. {
  703.    struct MA_GUIData
  704.    {
  705.       APTR WI, MN_FOLDER, MN_REXX, MS_MAIN, BC_STAT[17], ST_LAYOUT;
  706.       APTR MI_ERRORS, MI_CSINGLE, MI_IMPORT, MI_EXPORT, MI_SENDALL, MI_EXCHANGE, MI_GETMAIL, MI_READ, MI_EDIT, MI_MOVE, MI_COPY, MI_DELETE, MI_PRINT, MI_SAVE, MI_ATTACH, MI_SAVEATT, MI_REMATT, MI_EXPMSG;
  707.       APTR MI_REPLY, MI_FORWARD, MI_BOUNCE, MI_GETADDRESS, MI_STATUS, MI_TOREAD, MI_TOUNREAD, MI_TOHOLD, MI_TOQUEUED, MI_CHSUBJ, MI_SEND;
  708.       APTR LV_FOLDERS, NL_FOLDERS, LV_MAILS, NL_MAILS, TO_TOOLBAR, GA_INFO;
  709.       struct MUIP_Toolbar_Description TB_TOOLBAR[18];
  710.    } GUI;
  711.    char WinTitle[SIZE_DEFAULT];
  712. };
  713.  
  714. struct CO_ClassData  /* configuration window */
  715. {
  716.    struct CO_GUIData
  717.    {
  718.       APTR WI, BT_SAVE, BT_USE, BT_CANCEL;
  719.       APTR MI_IMPMIME, LV_PAGE, GR_PAGE, GR_SUBPAGE;
  720. /*0*/      APTR ST_REALNAME, ST_EMAIL, ST_POPHOST0, ST_PASSWD0, CY_TZONE, CH_DLSAVING;
  721. /*1*/      APTR ST_SMTPHOST, ST_DOMAIN, CH_SMTP8BIT, CH_USESMTPAUTH, ST_SMTPAUTHUSER , ST_SMTPAUTHPASS ,LV_POP3, GR_POP3, BT_PADD, BT_PDEL, ST_POPHOST, ST_POPUSERID, ST_PASSWD, CH_DELETE, CH_USEAPOP, CH_POPENABLED;
  722. /*2*/      APTR CH_AVOIDDUP, CY_MSGSELECT, CY_TRANSWIN, CH_UPDSTAT, ST_WARNSIZE, ST_INTERVAL, CH_DLLARGE, CH_NOTIREQ, CH_NOTISOUND, CH_NOTICMD, ST_NOTISOUND, ST_NOTICMD;
  723. /*3*/      APTR LV_RULES, BT_RADD, BT_RDEL, ST_RNAME, CH_REMOTE, CY_COMBINE[2], GR_LRGROUP, GR_LOCAL, GR_REMOTE, PO_MOVETO, TX_MOVETO, LV_MOVETO, CH_APPLYNEW, CH_APPLYREQ, CH_APPLYSENT, CH_ABOUNCE, ST_ABOUNCE, CH_AFORWARD, ST_AFORWARD, CH_ARESPONSE, ST_ARESPONSE, CH_AEXECUTE, ST_AEXECUTE, CH_APLAY, ST_APLAY, CH_AMOVE, CH_ADELETE, CH_ASKIP;
  724.            struct SearchGroup GR_SEARCH[4];
  725. /*4*/      APTR CY_HEADER, ST_HEADERS, CY_SENDERINFO, CY_SIGSEPLINE, CA_COLTEXT, CA_COL2QUOT, CH_FIXFEDIT, CH_ALLTEXTS, CH_MULTIWIN, CH_WRAPHEAD, CH_TEXTSTYLES, ST_INTRANS;
  726. /*5*/      APTR ST_REPLYTO, ST_ORGAN, ST_EXTHEADER, ST_HELLOTEXT, ST_BYETEXT, ST_OUTTRANS, ST_EDWRAP, CY_EDWRAP, ST_EDITOR, CH_LAUNCH;
  727. /*6*/      APTR ST_REPLYHI, ST_REPLYTEXT, ST_REPLYBYE, ST_AREPLYHI, ST_AREPLYTEXT, ST_AREPLYBYE, ST_AREPLYPAT, ST_MREPLYHI, ST_MREPLYTEXT, ST_MREPLYBYE, CH_QUOTE, ST_REPLYCHAR, ST_ALTQUOTECHAR, CH_QUOTEEMPTY, CH_COMPADDR, CH_STRIPSIG, ST_FWDSTART, ST_FWDEND;
  728. /*7*/      APTR CH_USESIG, CY_SIGNAT, BT_SIGEDIT, TE_SIGEDIT, BT_INSTAG, BT_INSENV, ST_TAGFILE, ST_TAGSEP;
  729. /*8*/      APTR CH_FCOLS[FOCOLNUM], CH_MCOLS[MACOLNUM], CH_FIXFLIST, CH_BEAT;
  730. /*9*/     APTR ST_PGPCMD, ST_MYPGPID, CH_ENCSELF, ST_REMAILER, ST_FIRSTLINE, ST_LOGFILE, CY_LOGMODE, CH_SPLITLOG, CH_LOGALL;
  731. /*10*/     APTR CH_POPSTART, CH_SENDSTART, CH_DELETESTART, CH_REMOVESTART, CH_LOADALL, CH_MARKNEW, CH_CHECKBD, CH_SENDQUIT, CH_DELETEQUIT, CH_REMOVEQUIT;
  732. /*11*/     APTR LV_MIME, GR_MIME, ST_CTYPE, ST_EXTENS, ST_COMMAND, ST_DEFVIEWER, BT_MADD, BT_MDEL, CH_IDENTBIN, ST_DETACHDIR, ST_ATTACHDIR;
  733. /*12*/     APTR ST_GALLDIR, ST_PROXY, ST_PHOTOURL, CH_ADDINFO, CY_ATAB, ST_NEWGROUP, CH_ACOLS[ABCOLNUM];
  734. /*13*/     APTR LV_REXX, ST_RXNAME, ST_SCRIPT, CY_ISADOS, CH_CONSOLE, CH_WAITTERM;
  735. /*14*/     APTR ST_TEMPDIR, ST_APPX, ST_APPY, CH_CLGADGET, CH_CONFIRM, NB_CONFIRMDEL, CH_REMOVE, CH_SAVESENT;
  736.            APTR RA_MDN_DISP, RA_MDN_PROC, RA_MDN_DELE, RA_MDN_RULE, CH_SEND_MDN, TX_PACKER, TX_ENCPACK, NB_PACKER, NB_ENCPACK, ST_ARCHIVER;
  737.    } GUI;
  738.    int VisiblePage;
  739.    int LastSig;
  740.    BOOL Visited[MAXCPAGES];
  741.    BOOL UpdateAll;
  742. };
  743.  
  744. struct FO_ClassData  /* folder configuration window */
  745. {
  746.    struct FO_GUIData
  747.    {
  748.       APTR WI;
  749.       APTR ST_FNAME, TX_FPATH, BT_MOVE, ST_MAXAGE, CY_FMODE, CY_FTYPE, CY_SORT[2], CH_REVERSE[2], ST_MLPATTERN, ST_MLFROMADDRESS, ST_MLREPLYTOADDRESS, ST_MLADDRESS, CY_MLSIGNATURE;
  750.    } GUI;
  751.    struct Folder *EditFolder;
  752. };
  753.  
  754. struct EA_ClassData  /* address book entry window */
  755. {
  756.    struct EA_GUIData
  757.    {
  758.       APTR WI;
  759.       APTR ST_ALIAS, ST_REALNAME, ST_ADDRESS, ST_COMMENT, ST_PHONE, ST_STREET, ST_CITY, ST_COUNTRY, ST_PGPKEY, CY_DEFSECURITY;
  760.       APTR ST_HOMEPAGE, ST_BIRTHDAY, GR_PHOTO, BC_PHOTO, BT_SELECTPHOTO, BT_LOADPHOTO;
  761.       APTR LV_MEMBER, ST_MEMBER, BT_ADD, BT_DEL;
  762.       APTR BT_OKAY, BT_CANCEL;
  763.    } GUI;
  764.    int  Type;
  765.    int  EntryPos;
  766.    char PhotoName[SIZE_PATHFILE];
  767.    struct MUI_NListtree_TreeNode *EditNode;
  768. };
  769.  
  770. struct AB_ClassData  /* address book window */
  771. {
  772.    struct AB_GUIData
  773.    {
  774.       APTR WI;
  775.       APTR TO_TOOLBAR, LV_ADRESSES;
  776.       APTR BT_TO, BT_CC, BT_BCC;
  777.       struct MUIP_Toolbar_Description TB_TOOLBAR[13];
  778.    } GUI;
  779.    BOOL Modified;
  780.    int  Hits;
  781.    int  Mode;
  782.    int  SortBy;
  783.    char WTitle[SIZE_DEFAULT];
  784.    int  WrWin;
  785. };
  786.  
  787. struct RE_ClassData  /* read window */
  788. {
  789.    struct RE_GUIData
  790.    {
  791.       APTR WI;
  792.       APTR MI_EDIT, MI_DETACH, MI_CROP, MI_WRAPH, MI_TSTYLE, MI_FFONT, MI_EXTKEY, MI_CHKSIG, MI_SAVEDEC;
  793.       APTR GR_BODY, GR_HEAD, LV_HEAD, TO_TOOLBAR, TE_TEXT, SL_TEXT, GR_STATUS[6];
  794.       APTR GR_INFO, GR_PHOTO, BC_PHOTO, LV_INFO, BO_BALANCE;
  795.       struct MUIP_Toolbar_Description TB_TOOLBAR[13];
  796.    } GUI;
  797.    int               WindowNr; // seems to be unused
  798.    struct Mail       Mail;
  799.    struct Mail      *MailPtr;
  800.    struct TempFile  *TempFile;
  801.    char              File[SIZE_PATHFILE];
  802.    FILE             *Fh;
  803.    struct Part      *FirstPart;
  804.    BOOL              FirstReadDone;
  805.    int               ParseMode;
  806.    int               Header;
  807.    int               SenderInfo;
  808.    BOOL              NoTextstyles, WrapHeader, FixedFont;
  809.    int               LastDirection;
  810.    BOOL              PGPKey;
  811.    int               PGPSigned, PGPEncrypted;
  812.    char              Signature[SIZE_ADDRESS];
  813.    char              WTitle[SIZE_DEFAULT];
  814. };
  815.  
  816. struct WR_ClassData  /* write window */
  817. {
  818.    struct WR_GUIData
  819.    {
  820.       APTR WI;
  821.       APTR RG_PAGE;
  822.       APTR ST_TO, ST_SUBJECT;
  823.       APTR TX_POSI, TE_EDIT, TO_TOOLBAR;
  824.       APTR LV_ATTACH;
  825.       APTR BT_ADD, BT_ADDPACK, BT_DEL, BT_DISPLAY;
  826.       APTR RA_ENCODING, CY_CTYPE, ST_CTYPE, ST_DESC;
  827.       APTR ST_CC, ST_BCC, ST_FROM, ST_REPLYTO, ST_EXTHEADER, CH_DELSEND, CH_RECEIPT, CH_DISPNOTI, CH_ADDINFO, CY_IMPORTANCE;
  828.         APTR RA_SECURITY, CH_DEFSECURITY, RA_SIGNATURE;
  829.       APTR BT_HOLD, BT_QUEUE, BT_SEND, BT_CANCEL;
  830.       struct MUIP_Toolbar_Description TB_TOOLBAR[13];
  831.    } GUI;
  832.    int                  WindowNr; // seems to be unused
  833.    BOOL                 Bounce;
  834.    struct Mail         *Mail, **MList;
  835.    struct ABEntry      *ListEntry;
  836.    int                  Mode;
  837.    int                  OldSecurity;
  838.    int                  AS_Count;
  839.    BOOL                 AS_Done;
  840.    char                 MsgID[SIZE_MSGID];
  841.    char                 QuoteText[SIZE_DEFAULT];
  842.    char                 AltQuoteText[SIZE_SMALL];    // no variable substitution -> SIZE_SMALL!
  843.    char                 WTitle[SIZE_DEFAULT];
  844.    int                  ReadwinNum; // winnum of the read window the editor was invoked from, or -1
  845. };
  846.  
  847. struct TR_ClassData  /* transfer window */
  848. {
  849.    struct TR_GUIData
  850.    {
  851.       APTR  WI;
  852.       APTR  GR_LIST, GR_PAGE, LV_MAILS, BT_PAUSE, BT_RESUME, BT_QUIT, BT_START;
  853.       APTR  TX_STATS, TX_STATUS, GA_COUNT, GA_BYTES, BT_ABORT;
  854.       char *ST_STATUS;
  855.    } GUI;
  856.    struct Mail       *List;
  857.    struct Mail       *GMD_Mail;
  858.    struct Search     *Search[2*MAXRU];
  859.    struct DownloadResult Stats;
  860.    int                Scnt;
  861.    BOOL               Checking;
  862.    char              *UIDLloc;
  863.    BOOL               supportUIDL;
  864.    int                GMD_Line;
  865.    long               Abort, Pause, Start;
  866.    int                GUIlevel;
  867.    int                POP_Nr;
  868.    BOOL               SinglePOP;
  869.    struct Folder     *ImportBox;
  870.    char               WTitle[SIZE_DEFAULT];
  871.    char               ImportFile[SIZE_PATHFILE];
  872.    char               CountLabel[SIZE_DEFAULT];
  873.    char               BytesLabel[SIZE_DEFAULT];
  874.    char               StatsLabel[SIZE_DEFAULT];
  875. };
  876.  
  877. struct ER_ClassData  /* error window */
  878. {
  879.    struct ER_GUIData
  880.    {
  881.       APTR WI;
  882.       APTR LV_ERROR, BT_NEXT, NB_ERROR, BT_PREV;
  883.    } GUI;
  884. };
  885.  
  886. struct FI_ClassData  /* find window */
  887. {
  888.    struct FI_GUIData
  889.    {
  890.       APTR WI;
  891.       APTR LV_FOLDERS;
  892.       struct SearchGroup GR_SEARCH;
  893.       APTR LV_MAILS, GR_PAGE, GA_PROGRESS, BT_SELECT, BT_READ;
  894.    } GUI;
  895.   long Abort;
  896. };
  897.  
  898. struct DI_ClassData  /* glossary window */
  899. {
  900.    struct DI_GUIData
  901.    {
  902.       APTR WI;
  903.       APTR GR_LIST, GR_TEXT, LV_ENTRIES, ST_ALIAS, TE_EDIT, SL_EDIT;
  904.       APTR BT_NEW, BT_DELETE, BT_ADDSELECT, BT_PASTE;
  905.    } GUI;
  906.    BOOL Modified;
  907.    struct Dict *OldEntry;
  908.    int  WrWin;
  909. };
  910.  
  911. struct US_ClassData  /* user list window */
  912. {
  913.    struct US_GUIData
  914.    {
  915.       APTR WI;
  916.       APTR LV_USERS, BT_ADD, BT_DEL;
  917.       APTR PO_MAILDIR, ST_MAILDIR, ST_USER, ST_PASSWD, CH_USEDICT, CH_USEADDR, CH_CLONE, CH_ROOT;
  918.    } GUI;
  919.    BOOL Supervisor;
  920. };
  921.  
  922. struct UniversalClassData
  923. {
  924.    struct UniversalGUIData { APTR WI; } GUI;
  925. };
  926. ///
  927. /// Global Structure
  928. struct Global 
  929. {
  930.    BOOL                  Error;
  931.    BOOL                  PGP5;
  932.    BOOL                  DtpicSupported;
  933.    APTR                  App;
  934.    struct AppIcon       *AppIcon;
  935.    struct MsgPort       *AppPort;
  936.    struct RexxHost      *RexxHost;
  937.    struct DiskObject    *DiskObj[MAXICONS];
  938.    struct BodyChunkData *BImage[MAXIMAGES];
  939.    struct FileRequester *ASLReq[MAXASL];
  940.    struct Locale        *Locale;
  941.    struct DateStamp      StartDate;
  942.    int                   TotMsgs;
  943.    int                                     UnrMsgs;
  944.    int                   NewMsgs;
  945.    BOOL                  AppIconQuiet;
  946.    int                   GM_Count, SI_Count;
  947.    char                  ProgDir[SIZE_PATH];
  948.    struct Users          Users;
  949.    int                   PGPVersion;
  950.    char                  PGPPassPhrase[SIZE_DEFAULT];
  951.    BOOL                  PGPPassVolatile;
  952.    long                  EdColMap[9];
  953.    long                  Weights[6];
  954.    struct TranslationTable *TTin, *TTout;
  955.    struct RuleResult      RRs;
  956.    struct DownloadResult  LastDL;
  957.    char                  MA_MailDir[SIZE_PATH];
  958.    struct MA_ClassData  *MA;
  959.    char                  CO_PrefsFile[SIZE_PATHFILE];
  960.    BOOL                  CO_Valid;
  961.    int                   CO_DST;
  962.    struct CO_ClassData  *CO;
  963.    char                  AB_Filename[SIZE_PATHFILE];
  964.    struct AB_ClassData  *AB;
  965.    struct EA_ClassData  *EA[MAXEA];
  966.    struct RE_ClassData  *RE[MAXRE+1];
  967.    struct WR_ClassData  *WR[MAXWR+1];
  968.    struct NotifyRequest  WR_NRequest[MAXWR+1];
  969.    char                  WR_Filename[3][SIZE_PATHFILE];
  970.    BOOL                  TR_Debug;
  971.    BOOL                  TR_Allow;
  972.    BOOL                  TR_Exchange;
  973.    int                   TR_Socket;
  974.    struct sockaddr_in    TR_INetSocketAddr;
  975.    struct TR_ClassData  *TR;
  976.    struct ER_ClassData  *ER;
  977.    char                 *ER_Message[MAXERR];
  978.    int                   ER_NumErr;
  979.    struct FI_ClassData  *FI;
  980.    struct FO_ClassData  *FO;
  981.    char                  DI_Filename[SIZE_PATHFILE];
  982.    struct DI_ClassData  *DI;
  983.    struct US_ClassData  *US;
  984.    APTR                  AY_Win, AY_Text, AY_Group, AY_List, AY_Button, AY_AboutText;
  985.    long                  ActiveReadWin, ActiveWriteWin;
  986. };
  987. ///
  988. /// MUI internal custom classes data
  989. struct DumData { long dummy; };
  990.  
  991. struct CW_Data
  992. {
  993.    char Buf[32];
  994.    BOOL Weights;
  995. };
  996.  
  997. struct BC_Data
  998. {
  999.    struct BodyChunkData *BCD;
  1000. };
  1001.  
  1002. struct AL_Data 
  1003.    struct Hook DisplayHook;
  1004.    Object *Object;
  1005.    APTR Image;
  1006. };
  1007. struct PL_Data
  1008.    struct Hook DisplayHook;
  1009.    Object *Object[MAXCPAGES];
  1010.    APTR Image[MAXCPAGES];
  1011. };
  1012. struct WS_Data
  1013. {
  1014.    struct MUI_EventHandlerNode ehnode;
  1015. };
  1016. ///
  1017. /// Enumerations
  1018. enum { STATUS_UNR, STATUS_OLD, STATUS_FWD, STATUS_RPD, STATUS_WFS, STATUS_ERR, STATUS_HLD, STATUS_SNT, STATUS_NEW, STATUS_DEL, STATUS_LOA, STATUS_SKI };
  1019.  
  1020. enum { ENC_NONE, ENC_QP, ENC_B64, ENC_UUE, ENC_BIN, ENC_8BIT, ENC_FORM };
  1021.  
  1022. enum { CT_TX_PLAIN=0, CT_TX_HTML, CT_TX_GUIDE,
  1023.        CT_AP_OCTET, CT_AP_PS, CT_AP_RTF, CT_AP_LHA, CT_AP_LZX, CT_AP_ZIP, CT_AP_AEXE, CT_AP_SCRIPT, CT_AP_REXX,
  1024.        CT_IM_JPG, CT_IM_GIF, CT_IM_PNG, CT_IM_TIFF, CT_IM_ILBM,
  1025.        CT_AU_AU, CT_AU_8SVX, CT_AU_WAV,
  1026.        CT_VI_MPG, CT_VI_MOV, CT_VI_ANIM, CT_VI_AVI,
  1027.        CT_ME_EMAIL };
  1028.  
  1029. enum { PA_LOAD, PA_DELETE, PA_SKIP, 
  1030.        PM_ALL, PM_TEXTS, PM_NONE,
  1031.        ABM_EDIT, ABM_TO, ABM_CC, ABM_BCC, ABM_REPLYTO, ABM_FROM,
  1032.        ED_OPEN, ED_INSERT, ED_INSQUOT, ED_INSALTQUOT, ED_INSROT13, ED_PASQUOT, ED_PASALTQUOT, ED_PASROT13,
  1033.        DSS_DATE, DSS_TIME, DSS_WEEKDAY, DSS_DATETIME, DSS_USDATETIME, DSS_UNIXDATE, DSS_BEAT, DSS_DATEBEAT};
  1034.  
  1035. enum { AET_USER=0, AET_LIST, AET_GROUP };
  1036.  
  1037. enum { SEND_ALL=-2, SEND_ACTIVE, NEW_NEW, NEW_REPLY, NEW_FORWARD, NEW_BOUNCE, NEW_EDIT, NEW_SAVEDEC,
  1038.        POP_USER, POP_START, POP_TIMED, POP_REXX, APPLY_USER, APPLY_AUTO, APPLY_SENT, APPLY_REMOTE,
  1039.        APPLY_RX_ALL, APPLY_RX, WRITE_HOLD, WRITE_SEND, WRITE_QUEUE, RIM_QUIET, RIM_READ, RIM_EDIT,
  1040.        RIM_QUOTE, RIM_PRINT, TR_IMPORT,TR_EXPORT,TR_GET,TR_SEND, RCPT_TYPE_ALL, RCPT_TYPE_READ,
  1041.        ABF_USER, ABF_RX, ABF_RX_NAME, ABF_RX_EMAIL, ABF_RX_NAMEEMAIL,
  1042.        SO_SAVE, SO_RESET };
  1043.  
  1044. enum { ID_CLOSEALL=1000, ID_RESTART, ID_ICONIFY, ID_LOGIN };
  1045.  
  1046. enum { FT_CUSTOM=0, FT_INCOMING, FT_OUTGOING, FT_SENT, FT_DELETED, FT_SEPARATOR, FT_CUSTOMSENT, FT_CUSTOMMIXED, FT_GROUP };
  1047.  
  1048. enum { FS_NONE=0, FS_FROM, FS_TO, FS_CC, FS_REPLYTO, FS_SUBJECT, FS_DATE, FS_SIZE };
  1049.  
  1050. enum { ASL_ABOOK=0, ASL_CONFIG, ASL_DETACH, ASL_ATTACH, ASL_REXX, ASL_PHOTO, ASL_IMPORT, ASL_FOLDER };
  1051.  
  1052. enum { MDN_IGNORE=0, MDN_DENY, MDN_READ, MDN_DISP, MDN_PROC, MDN_DELE };
  1053.  
  1054. enum { MACRO_MEN0=0, MACRO_MEN1, MACRO_MEN2, MACRO_MEN3, MACRO_MEN4, MACRO_MEN5,
  1055.        MACRO_MEN6, MACRO_MEN7, MACRO_MEN8, MACRO_MEN9, MACRO_STARTUP, MACRO_QUIT,
  1056.        MACRO_PREGET, MACRO_POSTGET, MACRO_NEWMSG, MACRO_PRESEND, MACRO_POSTSEND,
  1057.        MACRO_READ, MACRO_PREWRITE, MACRO_POSTWRITE, MACRO_URL };
  1058.  
  1059. /* if you add anything here, check the following places for potential changes:
  1060.  * YAM_MAf.c:MA_ExamineMail() (X-YAM-options handling)
  1061.  * YAM:WR.c:WriteOutMessage() (PGP multipart stuff); WR_New() (GUI elements, menus)
  1062.  */
  1063. enum { SEC_NONE=0, SEC_SIGN, SEC_ENCRYPT, SEC_BOTH, SEC_SENDANON, SEC_DEFAULTS, SEC_MAXDUMMY };
  1064. ///
  1065. /// Declaration of external variables
  1066. extern struct Library *WorkbenchBase, *IconBase, *IFFParseBase, *KeymapBase;
  1067. extern struct Library *DataTypesBase, *MUIMasterBase, *SocketBase, *XpkBase, *OpenURLBase, *CManagerBase;
  1068. extern struct LocaleBase *LocaleBase;
  1069. extern struct ExecBase *SysBase;
  1070. extern struct IntuitionBase *IntuitionBase;
  1071. extern struct DosLibrary *DOSBase;
  1072. extern struct UtilityBase *UtilityBase;
  1073. extern struct Global *G;
  1074. extern struct Config *C, *CE;
  1075. extern struct Hook AB_FromAddrBookHook;
  1076. extern struct Hook MA_ChangeSelectedHook, MA_ChangeFolderHook, MA_SendHook, MA_RescanIndexHook, MA_FlushIndexHook, MA_ApplyRulesHook, MA_DeleteDeletedHook, MA_DeleteOldHook;
  1077. extern struct Hook MA_LV_Cmp2Hook, MA_LV_FCmp2Hook, MA_LV_DspFuncHook, MA_LV_FDspFuncHook;
  1078. extern struct Hook PO_InitFolderListHook, MA_PO_MoveHook, PO_WindowHook;
  1079. extern struct Hook CO_OpenHook, CO_RemoteToggleHook;
  1080. extern struct Hook CO_EditSignatHook, CO_ToggleColHook, CO_GetDefaultPOPHook, CO_GetP3EntryHook, CO_PutP3EntryHook, CO_AddPOP3Hook, CO_DelPOP3Hook;
  1081. extern struct Hook CO_GetFOEntryHook, CO_PutFOEntryHook, CO_AddFolderHook, CO_DelFolderHook, CO_GetRUEntryHook, CO_PutRUEntryHook, CO_AddRuleHook, CO_DelRuleHook;
  1082. extern struct Hook CO_GetMVEntryHook, CO_PutMVEntryHook, CO_AddMimeViewHook, CO_DelMimeViewHook, CO_GetRXEntryHook, CO_PutRXEntryHook;
  1083. extern struct Hook FO_NewSeparatorHook, FO_NewFolderHook, FO_EditFolderHook, FO_DeleteFolderHook, FO_SetOrderHook;
  1084. extern struct Hook FI_OpenHook;
  1085. extern struct Hook DI_OpenHook;
  1086. extern struct Hook US_OpenHook;
  1087. extern struct Hook AB_OpenHook;
  1088. extern struct Hook RE_PrevNextHook, RE_LV_AttachDspFuncHook, RE_CloseHook;
  1089. extern struct Hook WR_NewMailHook, WR_EditHook;
  1090. extern struct Hook GeneralDesHook, RestartHook,DisposeModuleHook;
  1091. extern char *Status[9];
  1092. extern char *ContType[MAXCTYPE+1];
  1093. extern APTR ContTypeDesc[MAXCTYPE];
  1094. extern char *SigNames[3], *FolderNames[4], *SecCodes[5];
  1095. extern char *months[12], *wdays[7];
  1096. extern struct MUI_CustomClass *CL_BodyChunk, *CL_FolderList, *CL_AddressList, *CL_TextEditor, *CL_PageList;
  1097. extern struct MUI_CustomClass *CL_DDList, *CL_AttachList, *CL_DDString, *CL_MainWin;
  1098. extern struct Data2D Header;
  1099. extern int Mode2Group[12];
  1100. extern int BusyLevel;
  1101. ///
  1102. /// Function prototypes
  1103. struct Object; /* Help gcc compiling. But 'Object' is actually not a struct.
  1104.           a proper fix would be to change all 'struct Object' to 'Object'
  1105.           below and in the .c files. */
  1106. extern char *Protection2(void);
  1107. extern int StringRequest(char *, int, char *, char *, char *, char *, char *, BOOL, APTR);
  1108. extern struct Folder *FolderRequest(char *, char *, char *, char *, struct Folder *, APTR);
  1109. extern struct Part *AttachRequest(char *, char *, char *, char *, int, int, APTR);
  1110. extern void InfoWindow(char *, char *, char *, APTR);
  1111. extern char *GetLine(FILE *, char *, int);
  1112. extern BOOL CopyFile(char *, FILE *, char *, FILE *);
  1113. extern BOOL RenameFile(char *, char *);
  1114. extern BOOL ConvertCRLF(char *, char *, BOOL);
  1115. extern void QuoteWordWrap(char *, int, char *, char *, FILE *);
  1116. extern void SimpleWordWrap(char *, int);
  1117. extern int FileSize(char *);
  1118. extern long FileProtection(char *);
  1119. extern int FileType(char *);
  1120. extern BOOL FileExists(char *);
  1121. extern BOOL PFExists(char *, char *);
  1122. extern int ReqFile(int, struct Object *, char *, int, char *, char *);
  1123. extern struct TempFile *OpenTempFile(char *);
  1124. extern void CloseTempFile(struct TempFile *);
  1125. extern BOOL DumpClipboard(FILE *);
  1126. extern void DeleteMailDir(char *, BOOL);
  1127. extern BOOL CheckPrinter(void);
  1128. extern int MatchNoCase(char *, char *);
  1129. extern BOOL MatchTT(char *, struct TranslationTable *, BOOL);
  1130. extern BOOL ISpace(char);
  1131. extern BOOL isSpace(int), isGraph(int), isAlNum(int);
  1132. extern char *StripUnderscore(char *);
  1133. extern char *GetNextLine(char *);
  1134. extern char *TrimStart(char *);
  1135. extern char *TrimEnd(char *);
  1136. extern char *Trim(char *);
  1137. extern char *itoa(int);
  1138. extern char *stccat(char *, char *, int);
  1139. extern char *stristr(char *, char *);
  1140. extern char *MyStrChr(char *, int);
  1141. extern char *AllocStrBuf(long);
  1142. extern void FreeStrBuf(char *);
  1143. extern char *StrBufCpy(char *, char *);
  1144. extern char *StrBufCat(char *, char *);
  1145. extern void FreeData2D(struct Data2D *);
  1146. extern char *AllocData2D(struct Data2D *, int);
  1147. extern APTR AllocCopy(APTR, int);
  1148. extern char *Encrypt(char *);
  1149. extern char *Decrypt(char *);
  1150. extern char *DescribeCT(char *);
  1151. extern char *BuildAddrName(char *,char *);
  1152. extern char *BuildAddrName2(struct Person *);
  1153. extern char *CreateFilename(char *);
  1154. extern BOOL CreateDirectory(char *);
  1155. extern char *GetFolderDir(struct Folder *);
  1156. extern char *GetMailFile(char *, struct Folder *, struct Mail *);
  1157. extern void ExtractAddress(char *, struct Person *);
  1158. extern time_t GetDateStamp(void);
  1159. extern char *DateStamp2String(struct DateStamp *, int);
  1160. extern long DateStamp2Long(struct DateStamp *);
  1161. extern char *GetTZ(void);
  1162. extern struct DateStamp *ScanDate(char *);
  1163. extern void FormatSize(int, char *);
  1164. extern void MyAddTail(struct Mail **, struct Mail *);
  1165. extern void MyRemove(struct Mail **, struct Mail *);
  1166. extern APTR WhichLV(struct Folder *);
  1167. extern struct MailInfo *GetMailInfo(struct Mail *);
  1168. extern char *ExpandText(char *, struct ExpandTextData *);
  1169. extern BOOL TransferMailFile(BOOL, struct Mail *, struct Folder *);
  1170. extern BOOL MailExists(struct Mail *, struct Folder *);
  1171. extern int SelectMessage(struct Mail *);
  1172. extern void DisplayMailList(struct Folder *, APTR);
  1173. extern struct Mail *AddMailToList(struct Mail *, struct Folder *);
  1174. extern void RemoveMailFromList(struct Mail *);
  1175. extern void ClearMailList(struct Folder *, BOOL);
  1176. extern struct Person *GetReturnAddress(struct Mail *);
  1177. extern char ShortCut(char *);
  1178. extern void SetHelp(APTR, APTR);
  1179. extern void DisposeModulePush(void *);
  1180. extern void DisposeModule(void *);
  1181. extern Object *MakeButton(char *);
  1182. extern Object *MakeCycle(char **, char *);
  1183. extern Object *MakeImage(UBYTE *);
  1184. extern void FreeBCImage(struct BodyChunkData *);
  1185. extern struct BodyChunkData *GetBCImage(char *);
  1186. extern struct BodyChunkData *LoadBCImage(char *);
  1187. extern Object *MakeCheck(char *);
  1188. extern Object *MakeCheckGroup(Object **, char *);
  1189. extern Object *MakeString(int, char *);
  1190. extern Object *MakePassString(char *);
  1191. extern Object *MakeInteger(int, char *);
  1192. extern Object *MakePGPKeyList(APTR *, BOOL, char *);
  1193. extern Object *MakePicture(char *);
  1194. extern Object *MakeStatusFlag(char *);
  1195. extern Object *MakeNumeric(int, int, BOOL);
  1196. extern Object *MakeMenuitem(const UBYTE *str, ULONG ud);
  1197. extern void SetupToolbar(struct MUIP_Toolbar_Description *, char *, char *, UWORD);
  1198. extern void SetupMenu(int, struct NewMenu *, char *, char *, int);
  1199. extern int GetMUI(struct Object *,int);
  1200. extern char *GetMUIStringPtr(struct Object *);
  1201. extern void GetMUIString(char *,struct Object *);
  1202. extern void GetMUIText(char *,struct Object *);
  1203. extern int GetMUIInteger(struct Object *);
  1204. extern int GetMUINumer(struct Object *);
  1205. extern BOOL GetMUICheck(struct Object *);
  1206. extern int GetMUICycle(struct Object *);
  1207. extern int GetMUIRadio(struct Object *);
  1208. extern BOOL SafeOpenWindow(struct Object *);
  1209. extern ULONG DoSuperNew(struct IClass *, Object *, ULONG,...);
  1210. extern void SaveLayout(BOOL);
  1211. extern void LoadLayout(void);
  1212. extern ULONG ConvertKey(struct IntuiMessage *);
  1213. extern void DisplayStatistics(struct Folder *);
  1214. extern void SetupAppIcons(void);
  1215. extern BOOL EditorToFile(struct Object *, char *, struct TranslationTable *);
  1216. extern BOOL FileToEditor(char *, struct Object *);
  1217. extern BOOL LoadTranslationTable(struct TranslationTable **, char *);
  1218. extern int CompressMsgID(char *);
  1219. extern BOOL RepackMailFile(struct Mail *, int, char *);
  1220. extern char *StartUnpack(char *, char *, struct Folder *);
  1221. extern void FinishUnpack(char *);
  1222. extern BOOL DoPack(char *, char *, struct Folder *);
  1223. extern BOOL IsValidMailFile(char *);
  1224. extern void Busy(char *, char *, int, int);
  1225. extern void PlaySound(char *);
  1226. extern BOOL MatchExtension(char *, char *);
  1227. extern char *IdentifyFile(char *);
  1228. extern void InsertAddresses(APTR, char **, BOOL);
  1229. extern char *AllocReqText(char *);
  1230. extern void SPrintF(char *outstr, char *fmtstr, ...);
  1231. extern void PopUp(void);
  1232. extern void AppendLog(int, char *, void *, void *, void *, void *);
  1233. extern void AppendLogNormal(int, char *, void *, void *, void *, void *);
  1234. extern void AppendLogVerbose(int, char *, void *, void *, void *, void *);
  1235. extern int PGPCommand(char *, char *, int);
  1236. extern void PGPGetPassPhrase(void);
  1237. extern void PGPClearPassPhrase(BOOL);
  1238. extern BOOL ExecuteCommand(char *, BOOL, BPTR);
  1239. extern int GetSimpleID(void);
  1240. extern void GotoURL(char *);
  1241. extern char *strtok_r(char**, char*);
  1242.  
  1243. extern void MA_SetSortFlag(void);
  1244. extern BOOL MA_PromptFolderPassword(struct Folder *, APTR);
  1245. extern void MA_DeleteSingle(struct Mail *, BOOL);
  1246. extern BOOL MA_ReadHeader(FILE *);
  1247. extern BOOL MA_SaveIndex(struct Folder *);
  1248. extern int  MA_LoadIndex(struct Folder *, BOOL);
  1249. extern BOOL MA_GetIndex(struct Folder *);
  1250. extern void MA_UpdateIndexes(BOOL);
  1251. extern void MA_ExpireIndex(struct Folder *);
  1252. extern void MA_FlushIndexes(BOOL);
  1253. extern char *MA_NewMailFile(struct Folder *, char *, int);
  1254. extern struct Mail *MA_GetActiveMail(struct Folder *, struct Folder **, int *);
  1255. extern void MA_About(void);
  1256. extern struct ExtendedMail *MA_ExamineMail(struct Folder *, char *, char *, BOOL);
  1257. extern void MA_FreeEMailStruct(struct ExtendedMail *);
  1258. extern void MA_ScanMailBox(struct Folder *);
  1259. extern void MA_ChangeFolder(struct Folder *);
  1260. extern void SAVEDS MA_ChangeSelectedFunc(void);
  1261. extern void SAVEDS MA_SetMessageInfoFunc(void);
  1262. extern void SAVEDS MA_SetFolderInfoFunc(void);
  1263. extern struct Mail **MA_CreateMarkedList(APTR);
  1264. extern void MA_ChangeTransfer(BOOL);
  1265. extern int MA_NewNew(struct Mail *, int);
  1266. extern int MA_NewEdit(struct Mail *, int, int);
  1267. extern int MA_NewBounce(struct Mail *, int);
  1268. extern int MA_NewForward(struct Mail **, int);
  1269. extern int MA_NewReply(struct Mail **, int);
  1270. extern int MA_NewMessage(int, int);
  1271. extern void MA_MoveCopy(struct Mail *, struct Folder *, struct Folder *, BOOL);
  1272. extern void MA_GetAddress(struct Mail **);
  1273. extern void MA_ChangeSubject(struct Mail *, char *);
  1274. extern void MA_RemoveAttach(struct Mail *);
  1275. extern void MA_SetMailStatus(struct Mail *, int);
  1276. extern void MA_SetStatusTo(int);
  1277. extern BOOL MA_ImportMessages(char *);
  1278. extern BOOL MA_ExportMessages(BOOL, char *, BOOL);
  1279. extern void MA_DeleteMessage(BOOL delatonce, BOOL force);
  1280. extern BOOL MA_StartMacro(int, char *);
  1281. extern int MA_AllocRules(struct Search **, int);
  1282. extern void MA_FreeRules(struct Search **, int);
  1283. extern BOOL MA_ExecuteRuleAction(struct Rule *, struct Mail *);
  1284. extern BOOL MA_SendMList(struct Mail **);
  1285. extern BOOL MA_Send(int);
  1286. extern void MA_PopNow(int, int);
  1287. extern void MA_SetupDynamicMenus(void);
  1288. extern int MA_CmpFunc(struct Mail **, struct Mail **);
  1289. extern void MA_MakeFOFormat(APTR);
  1290. extern void MA_MakeMAFormat(APTR);
  1291. extern long SAVEDS ASM MA_LV_DspFunc(REG(a0,struct Hook *), REG(a2,char **), REG(a1,struct Mail *));
  1292. extern struct MA_ClassData *MA_New(void);
  1293.  
  1294. extern BOOL CO_IsValid(void);
  1295. extern struct Rule *CO_NewRule(void);
  1296. extern struct POP3 *CO_NewPOP3(struct Config *, BOOL);
  1297. extern struct MimeView *CO_NewMimeView(void);
  1298. extern void CO_SetDefaults(struct Config *, int);
  1299. extern struct Rule *CO_NewRule(void);
  1300. extern void CO_RuleGhost(struct CO_GUIData *, struct Rule *);
  1301. extern BOOL CO_LoadConfig(struct Config *, char *, struct Folder ***);
  1302. extern void CO_SaveConfig(struct Config *, char *);
  1303. extern void CO_Validate(struct Config *, BOOL);
  1304. extern void CO_SetConfig(void);
  1305. extern void CO_GetConfig(void);
  1306. extern void CO_FreeConfig(struct Config *);
  1307. extern long SAVEDS ASM CO_PL_DspFunc(REG(a0,struct Hook *), REG(a2,char **), REG(a1,struct PageList *));
  1308. extern APTR CO_Page0(struct CO_ClassData *), CO_Page1(struct CO_ClassData *), CO_Page2(struct CO_ClassData *), CO_Page3(struct CO_ClassData *), CO_Page4(struct CO_ClassData *), CO_Page5(struct CO_ClassData *), CO_Page6(struct CO_ClassData *), CO_Page7(struct CO_ClassData *);
  1309. extern APTR CO_Page8(struct CO_ClassData *), CO_Page9(struct CO_ClassData *), CO_Page10(struct CO_ClassData *),CO_Page11(struct CO_ClassData *), CO_Page12(struct CO_ClassData *),CO_Page13(struct CO_ClassData *),CO_Page14(struct CO_ClassData *),CO_Page15(struct CO_ClassData *);
  1310.  
  1311. extern struct Folder **FO_CreateList(void);
  1312. extern struct Folder *FO_GetCurrentFolder(void);
  1313. extern struct Folder *FO_GetFolderRexx(char *, int *);
  1314. extern struct Folder *FO_GetFolderByName(char *, int *);
  1315. extern struct Folder *FO_GetFolderByType(int, int *);
  1316. extern void SAVEDS FO_DeleteFolderFunc(void);
  1317. extern BOOL FO_LoadConfig(struct Folder *);
  1318. extern void FO_SaveConfig(struct Folder *);
  1319.  
  1320. extern int FO_GetFolderPosition(struct Folder *);
  1321. extern struct Folder *FO_NewFolder(int, char *, char *);
  1322. extern BOOL FO_CreateFolder(int, char *, char *);
  1323. extern BOOL FO_LoadTree(char *);
  1324. extern BOOL FO_SaveTree(char *);
  1325.  
  1326. extern APTR AB_GotoEntry(char *alias);
  1327. extern void AB_InsertAddress(APTR, char *, char *, char *);
  1328. extern char *AB_CompleteAlias(char *);
  1329. extern char *AB_ExpandBD(long date);
  1330. extern long AB_CompressBD(char *datestr);
  1331. extern void AB_CheckBirthdates(void);
  1332. extern STACKEXT int AB_SearchEntry(struct MUI_NListtree_TreeNode *list, char *, int, int *, struct  MUI_NListtree_TreeNode **);
  1333. extern BOOL AB_LoadTree(char *, BOOL, BOOL);
  1334. extern BOOL AB_SaveTree(char *);
  1335. extern void SAVEDS AB_SaveABookFunc(void);
  1336. extern void SAVEDS AB_DeleteFunc(void);
  1337. extern STACKEXT BOOL AB_FindEntry(struct MUI_NListtree_TreeNode *, char *, int mode, char **);
  1338. extern void AB_MakeABFormat(APTR);
  1339. extern long SAVEDS ASM AB_LV_DspFunc(REG(a0, struct Hook *), REG(a1, struct MUIP_NListtree_DisplayMessage *));
  1340. extern struct AB_ClassData *AB_New(void);
  1341.  
  1342. extern int EA_Init(int, struct MUI_NListtree_TreeNode *);
  1343. extern void EA_Setup(int, struct ABEntry *);
  1344. extern void EA_InsertBelowActive(struct ABEntry *, int);
  1345. extern void EA_FixAlias(struct ABEntry *, BOOL);
  1346. extern void EA_SetDefaultAlias(struct ABEntry *);
  1347. extern void EA_AddSingleMember(Object *, struct MUI_NListtree_TreeNode *);
  1348. extern STACKEXT void EA_AddMembers(Object *, struct MUI_NListtree_TreeNode *);
  1349. extern void EA_SetDefaultAlias(struct ABEntry *);
  1350. extern void EA_SetPhoto(int, char *);
  1351.  
  1352. extern BOOL RE_DoMDN(int MDNtype, struct Mail *mail, BOOL multi);
  1353. extern struct Mail *RE_GetQuestion(long);
  1354. extern struct Mail *RE_GetAnswer(long);
  1355. extern BOOL RE_DecodePart(struct Part *);
  1356. extern STACKEXT void RE_ProcessHeader(char *, char *, BOOL, char *);
  1357. extern void RE_CleanupMessage(int);
  1358. extern BOOL RE_LoadMessage(int, int);
  1359. extern char *RE_ReadInMessage(int, int);
  1360. extern void RE_SaveAll(int, char *);
  1361. extern char *RE_SuggestName(struct Mail *);
  1362. extern BOOL RE_Export(int, char *, char *, char *, int, BOOL, BOOL, char *);
  1363. extern void RE_SaveDisplay(int, FILE *);
  1364. extern void RE_DisplayMIME(char *, char *);
  1365. extern void RE_DisplayMessage(int);
  1366. extern void RE_InitPrivateRC(struct Mail *, int);
  1367. extern void RE_FreePrivateRC(void);
  1368. extern void RE_ReadMessage(int, struct Mail *);
  1369. extern int RE_Open(int, BOOL);
  1370. extern struct RE_ClassData *RE_New(int, BOOL);
  1371.  
  1372. extern int WR_ResolveName(int, char *, char **, BOOL);
  1373. extern char *WR_ExpandAddresses(int, char *, BOOL, BOOL);
  1374. extern void WR_AddSignature(char *, int);
  1375. extern void WR_OpenWin(int);
  1376. extern void WR_FromAddrBook(struct Object *);
  1377. extern void SAVEDS ASM WR_GetFileEntry(REG(a1,int *));
  1378. extern void SAVEDS ASM WR_PutFileEntry(REG(a1,int *));
  1379. extern void SAVEDS ASM WR_Edit(REG(a1,int *));
  1380. extern void EmitHeader(FILE *, char *, char *);
  1381. extern BOOL WriteOutMessage(struct Compose *);
  1382. extern struct WritePart *NewPart(int);
  1383. extern int WR_Open(int, BOOL);
  1384. extern void WR_SetupOldMail(int);
  1385. extern void FreePartsList(struct WritePart *);
  1386. extern BOOL WR_AddFileToList(int, char *, char *, BOOL);
  1387. extern char *WR_AutoSaveFile(int);
  1388. extern void WR_NewMail(int, int);
  1389. extern void WR_Cleanup(int);
  1390. extern void WR_App(int, struct AppMessage *);
  1391. extern struct WR_ClassData *WR_New(int);
  1392.  
  1393. extern BOOL TR_IsOnline(void);
  1394. extern BOOL TR_OpenTCPIP(void);
  1395. extern void TR_CloseTCPIP(void);
  1396. extern void TR_Cleanup(void);
  1397. extern BOOL TR_DownloadURL(char *, char *, char *, char *filename);
  1398. extern BOOL TR_SendPopCmd(char *, char *, char *, int);
  1399. extern int  TR_RecvDat(char *);
  1400. extern BOOL TR_SendSMTPCmd(char *, char *);
  1401. extern BOOL TR_SendDat(char *);
  1402. extern void TR_SetWinTitle(BOOL, char *);
  1403. extern int TR_Connect(char *, int);
  1404. extern void TR_Disconnect(void);
  1405. extern int  TR_ConnectPOP(int);
  1406. extern void TR_DisplayMailList(BOOL);
  1407. extern void TR_GetMessageList_IMPORT(FILE *);
  1408. extern BOOL TR_GetMessageList_GET(int);
  1409. extern void TR_GetMailFromNextPOP(BOOL, int, int);
  1410. extern BOOL TR_ProcessSEND(struct Mail **);
  1411. extern BOOL TR_ProcessEXPORT(char *, struct Mail **, BOOL);
  1412. extern void SAVEDS TR_ProcessIMPORTFunc(void);
  1413. extern void TR_GetUIDL(void);
  1414. extern void TR_GetMessageDetails(struct Mail *, int);
  1415. extern int TR_CheckMessage(int, int, int);
  1416. extern void TR_CompleteMsgList(void);
  1417. extern void TR_DisconnectPOP(void);
  1418. extern void TR_NewMailAlert(void);
  1419. extern void TR_Open(void);
  1420. extern struct TR_ClassData *TR_New(int);
  1421.  
  1422. extern void ER_NewError(char *, char *, char *);
  1423.  
  1424. extern void FI_SearchGhost(struct SearchGroup *, BOOL disabled);
  1425. extern APTR FI_ConstructSearchGroup(struct SearchGroup *, BOOL);
  1426. extern BOOL MyMatch(BOOL, char *, char *);
  1427. extern BOOL FI_PrepareSearch(struct Search *, int, BOOL, int, int, int, BOOL, char *, char *);
  1428. extern BOOL FI_DoComplexSearch(struct Search *, int, struct Search *, struct Mail *);
  1429.  
  1430. extern BOOL US_Login(char *, char *, char *, char *);
  1431. extern struct User *US_GetCurrentUser(void);
  1432.  
  1433. extern void NewLine(FILE *, BOOL);
  1434. extern void to64(FILE *, FILE *, BOOL);
  1435. extern void toqp(FILE *, FILE *);
  1436. extern void touue(FILE *, FILE *);
  1437. extern void fromform(FILE *, FILE *, struct TranslationTable *);
  1438. extern void fromqp(FILE *, FILE *, struct TranslationTable *);
  1439. extern void from64(FILE *, FILE *, struct TranslationTable *, BOOL);
  1440. extern void fromuue(FILE *, FILE *);
  1441. extern void fromqptxt(char *, char *, struct TranslationTable *);
  1442. extern void from64txt(char *, char *, struct TranslationTable *);
  1443. extern void fromuuetxt(char **, FILE *);
  1444. extern BOOL DoesNeedPortableNewlines(char *);
  1445.  
  1446. extern BOOL InitClasses(void);
  1447. extern void ExitClasses(void);
  1448.  
  1449. #ifdef __MORPHOS__
  1450.     extern struct EmulLibEntry HookEntry;
  1451.     extern struct EmulLibEntry Gate_WL_Dispatcher;
  1452.     extern struct EmulLibEntry Gate_EL_Dispatcher;
  1453.     extern struct EmulLibEntry Gate_WS_Dispatcher;
  1454.     extern struct EmulLibEntry Gate_AL_Dispatcher;
  1455.     extern struct EmulLibEntry Gate_FL_Dispatcher;
  1456.     extern struct EmulLibEntry Gate_BC_Dispatcher;
  1457.     extern struct EmulLibEntry Gate_TE_Dispatcher;
  1458.     extern struct EmulLibEntry Gate_MW_Dispatcher;
  1459.     extern struct EmulLibEntry Gate_PL_Dispatcher;
  1460.     extern struct EmulLibEntry Gate_AB_LV_DspFunc;
  1461.     extern struct EmulLibEntry Gate_CO_PL_DspFunc;
  1462. #endif
  1463. ///
  1464.